Source Map
概述
Source Map 是一种开发工具技术,用于将压缩、编译或转换后的代码映射回原始源代码,便于调试时定位错误。
关键内容
- 技术原理:
- 当使用 TypeScript 编写代码并通过 Bun/Webpack/esbuild 等工具打包为生产环境的压缩 JS 时,构建工具会生成 .map 文件
- 作用是将压缩后难以阅读的代码映射回原始源码,方便调试时查看真正的报错位置
-
内部结构包含 version、sources(源文件路径)、sourcesContent(源文件内容)和 mappings(位置映射)字段
-
安全风险:
- sourcesContent 字段存储了所有原始文件的完整内容,包括注释、内部常量、系统提示词
- 如果错误地将包含完整源码的 .map 文件部署到生产环境,可能导致源码泄露
-
Source Map 泄露事件就是此类安全问题的典型案例
-
配置要点:
- 生产环境中通常应禁用 Source Map 生成
- 需要在 .npmignore 或类似配置文件中排除 *.map 文件
- 构建配置中应明确关闭 source map 生成(如 Bun 打包器)
来源
- 01_overview_architecture — 技术原理说明
相关
- TypeScript — used_with
- Webpack — generates
- esbuild — generates
- Bun — generates
- Source Map 泄露事件 — security_impact